/**
 * 根据分割符分割字符串
 * @param str
 * @param separator 分割符 默认 |
 * @return 返回字符串数组
 */
export function spliceSeparator(str: string, separator?: string = '|') {
  if (str) {
    return str.split(separator);
  }
  return [];
}

/**
 * 拼接资源路径前缀
 * @param url 资源路径
 */
export function spliceUrlPrefix(url: string) {
  // 处理非HTTP协议路径
  if (!/^https?:\/\//i.test(url)) {
    const baseURL = import.meta.env.PROD
      ? import.meta.env.VITE_GLOB_API_URL
      : `${location.origin}${import.meta.env.VITE_GLOB_API_URL}`;
    return baseURL + url;
  }
  return url;
}

/**
 * 分割字符串并拼接前缀
 * @param url 目标字符串
 * @param separator 分割符 默认 |
 * @return 字符串数组
 */
export function spliceSepPrefix(url: string, separator: string = '|') {
  const separatorArr = spliceSeparator(url, separator);
  // 使用 map 和 await 处理每个元素
  return separatorArr.map((item) => {
    return spliceUrlPrefix(item.trim());
  });
}

/**
 * 分割字符串并拼接前缀,返回数组第一个
 * @param url 目标字符串
 * @param separator 分割符 默认 |
 * @return 第一个字符串 | []
 */
export function getOneSpliceSepPrefix(url: string, separator: string = '|') {
  const sepPrefix = spliceSepPrefix(url, separator);
  if (sepPrefix) {
    return sepPrefix[0];
  }
  return [];
}
